// 遍历二维数组某一索引元素的周围 8 个元素, 遍历次序为: 逐行
// 参数: 回调函数、中心元素坐标[x,y]、是否包括中心元素(布尔值,不传默认不包括)
// 会自动将正在遍历的元素传入回调函数中
Array.prototype.forRound = function(fn,axis,self){
	var that = this, i = axis[0], j=axis[1];
	f(i-1,j-1);f(i-1,j);f(i-1,j+1);f(i,j-1);
	if(self){f(i,j)}f(i,j+1);f(i+1,j-1);f(i+1,j);f(i+1,j+1);
	function f(i,j){
		// 确保不访问非法内存
		if(i < 0 || i >= that.length || j < 0 || j >= that[0].length){
			return 0
		}
		fn(that[i][j],[i,j],that)
	}
}